package com.gtenacg.cartoonservice.service;


import com.gtenacg.cartoonservice.pojo.model.*;
import com.gtenacg.cartoonservice.pojo.vo.CartoonVo;
import org.springframework.dao.DuplicateKeyException;

import java.util.List;

/**
* @author 86198
* @description 针对表【cartoon(漫画)】的数据库操作Service
* @createDate 2024-05-06 16:50:49
*/
public interface CartoonService {

    List<Cartoon> list();

    List<Cartoon> getByCids(List<Integer> cids);

    List<String> getChapterList(Cartoon cartoon);

    List<String> getChapterInfos(String src);

    Integer insert(Cartoon cartoon) throws DuplicateKeyException;

    void update(Cartoon cartoon);

    void delete(List<Integer> cids);

    List<Cartoon> search(String name);

    List<Cartoon> random(Integer num);

    /**
     * 将cartoon列表转换封装成cartoonVo列表
     *
     * @param cartoons 漫画列表
     * @param types 类型列表
     * @param relationTypes 类型对应关系列表
     * @param authors 作者列表
     * @param relationAuthors 作者对应关系列表
     *
     * @return List<CartoonVo> cartoonVO的列表
     * */
    List<CartoonVo> assembleCartoonVo(List<Cartoon> cartoons,
                                      List<CartoonType> types, List<RelationCartoonType> relationTypes,
                                      List<Author> authors, List<RelationCartoonAuthor> relationAuthors);

}
